/**
  editormd :

  github：
  https://github.com/pandao/editor.md
  
  官网：
  https://pandao.github.io/editor.md/

  完整示例：
  https://pandao.github.io/editor.md/examples/full.html
 */

var tiosite_blog_edit_can_leave = true;

$(function() {
	tiosite_header_notfix(false);
	document.title = '修改博客';
	var element = layui.element; //导航的hover效果、二级菜单等功能，需要依赖element模块

	//监听导航点击
	element.on('nav(header_nav)', function(elem) {
		console.log(elem);
	});
	element.render();

	var form = layui.form;
	form.on('checkbox(original)', function(data) {
		console.log(data.elem.name); //得到checkbox原始DOM对象
		console.log(data.elem.checked); //是否被选中，true或者false
		console.log(data.value); //复选框value值，也可以通过data.elem.value得到
		console.log(data.othis); //得到美化后的DOM对象
		initoriginal(data.elem);
	});
	form.render();

	/**
   * 初始化原创输入框
   * @param {*} elem 
   */
	function initoriginal(elem) {
		$('#reprint_url_div')[0].style.display = elem.checked ? 'none' : '';
		if (elem.checked) {
			$('#fromurl').removeAttr('lay-verify');
		} else {
			$('#fromurl').attr('lay-verify', 'required');
		}
	}

	/**
 * 博客id
 */
	var id = getQueryString('id');
	if (!id) {
		location.href = '/';
		return;
	}

	$('#id').val(id);

	/**
	 * 提交表单
	 * 按钮点击或者表单被执行提交时触发，其中回调函数只有在验证全部通过后才会进入，回调返回三个成员：
	 */
	form.on('submit(publish)', function(data) {
		console.log(data.elem); //被执行事件的元素DOM对象，一般为button对象
		console.log(data.form); //被执行提交的form对象，一般在存在form标签时才会返回
		console.log(data.field); //当前容器的全部表单字段，名值对形式：{name: value}

		// $("#md").val(blogeditor.getMarkdown());
		// $("#html").val(blogeditor.getHTML());

		ajax.post('/blog/save', {
			data: $(data.form).serialize(),
			success: function(resp) {
				if (resp.ok) {
					layer.msg('更新成功');
					tiosite_blog_edit_can_leave = true;
					// window.location.href = "/blog/r/index.html?id=" + resp.data.id;0
					window.location.href = '/' + resp.data.id; //用nginx的rewrite重写了一下路径: rewrite ^\/(\d+?)$ /blog/r/index.html?id=$1 last;
				} else {
					layer.alert(resp.msg || '更新失败');
				}
			}
		});

		return false; //阻止表单跳转。如果需要表单跳转，去掉这段即可。
	});

	ajax.get('/blog/' + id, {
		success: function(resp) {
			if (resp.ok) {
				var data = resp.data;

				// form1是lay-filter='form1'
				form.val('form1', {
					classid: data.classid, // "name": "value"
					title: data.title,
					original: data.original == 1,
					allowcomment: data.allowcomment == 1,
					open: data.open == 1,
					orderno: data.orderno,
					fromurl: data.fromurl
				});

				$('#mdContent').html(data.md);

				document.title = data.title;

				initoriginal($('#original')[0]);

				// editormd.markdownToHTML("html-content");
				blogeditor = editormd('blogeditor_container', {
					htmlDecode: true, //这个参数你可以注意一点，true的话就部分支持原生Html了
					width: '100%',
					height: 500,

					path: '/res/editormd/lib/',
					codeFold: true,
					saveHTMLToTextarea: true, // 保存 HTML 到 Textarea
					searchReplace: true,
					emoji: true,
					placeholder: '写篇博客，增加记忆... ...',
					taskList: true,
					atLink: false,
					emailLink: false,
					// autoHeight: true,  //自动高度
					tocm: true, // Using [TOCM]
					tex: true, // 开启科学公式TeX语言支持，默认关闭
					flowChart: true, // 开启流程图支持，默认关闭
					sequenceDiagram: true, // 开启时序/序列图支持，默认关闭,
					imageUpload: true,
					imageFormats: [ 'jpg', 'jpeg', 'gif', 'png' ],
					imageUploadURL: '${api_ctx}/blog/uploadimg${api_suf}',
					lineNumbers: true,
					toolbarIcons: function() {
						return [
							// 'undo',
							// 'redo',
							// '|',
							'bold',
							'del',
							'italic',
							'quote',
							// 'ucwords',
							// 'uppercase',
							// 'lowercase',
							'|',
							'h1',
							'h2',
							'h3',
							// 'h4',
							// 'h5',
							// 'h6',
							'|',
							'list-ul',
							'list-ol',
							'hr',
							'|',
							'link',
							// "reference-link",
							'image',
							// "code",
							// "preformatted-text",
							'code-block',
							'table',
							// 'datetime',
							// 'html-entities',
							// 'pagebreak',
							// '|',
							// 'goto-line',
							'watch',
							'preview'
							// 'fullscreen'
						];
					}
        });
        

        $("#blogeditor_container").on("paste", "textarea", function(e) {
          //processParseImg(e, blogeditor);
        });

        $("#blogeditor_container").on("change", "textarea", function(e) {
          //processParseImg(e, blogeditor);
          tiosite_blog_edit_can_leave = false;
        });


			} else {
				location.href = '/';
				return;
			}
		}
	});

	$('#get-md-btn').bind('click', function() {
		var html_content = $('#html-content')[0];
		html_content.innerHTML = '';
		var textarea = document.createElement('textarea');
		html_content.appendChild(textarea);
		textarea.innerHTML = blogeditor.getMarkdown(); //blogeditor.getHTML();

		testEditor = editormd.markdownToHTML('html-content', {
			//注意：这里是上面DIV的id
			htmlDecode: 'style,script,iframe',
			emoji: true,
			taskList: true,
			theme: 'dark',
			previewTheme: 'dark',
			tex: true, // 默认不解析
			flowChart: true, // 默认不解析
			sequenceDiagram: true, // 默认不解析
			codeFold: true
		});
	});


  

	// 绑定beforeunload事件
	$(window).bind('beforeunload', function() {
		if (!tiosite_blog_edit_can_leave) {
			if (blogeditor.getMarkdown() && blogeditor.getMarkdown().trim()) {
				if (blogeditor.getMarkdown().trim().length > 10) {
					return '您输入的内容尚未保存，确定离开此页面吗？';
				}
			}
		}
	});
});
